package interfaces;

import com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException;
import entity.Book;
import entity.BookType;

import java.sql.Connection;
import java.util.List;

public interface BookDao2 {
    //将book对象添加到数据库中
    boolean insert(Connection conn, Book book);

    //针对指定的id，删除表中的一条记录
    boolean deleteById(Connection conn, int id) throws MySQLIntegrityConstraintViolationException;

    //修改指定id的对象
    boolean update(Connection conn, String ISBN, Book book);

    //针对指定的id查询得到对应的Book对象
    boolean deleteByISBN(Connection conn, String ISBN) throws MySQLIntegrityConstraintViolationException;

    Book getBookByISBN(Connection conn, String ISBN);

    //针对指定的name查询得到对应的BookType对象
    Book getBookTypeByName(Connection conn, String bookName);

    //查询所有同一图书类型的图书
    List<Book> getBookByType(Connection conn, int typeId);

    //查询所有同一作者的图书
    List<Book> getBookByAuthor(Connection conn, String author);

    //查询所有同一出版社的图书
    List<Book> getBookByPublish(Connection conn, String publish);

    // 查询表中所有记录构成的集合
    List<Book> getAll(Connection conn);
}
